Three dimensional light electronic programming guide

ABSTRACT

A method and apparatus of displaying an Electronic Programming Guide (EPG). In one embodiment, an EPG is displayed in a three dimensional virtual mesh, in which independent objects representing television programs are situated. The simplified nature of the three dimensional EPG reduces the amount of processing necessary to display it. In addition, the virtual mesh may be displayed isometrically, so that hardware requirements are further reduced and it may be possible to use a software only three dimensional graphics pipeline. If a user has a set top box (STB) with a hardware accelerated graphics pipeline, the EPG may be displayed in a full three dimensional perspective view. A user can navigate the mesh to find television programs that they wish to view. A user can assign values to types of television programs that they prefer, and these programs will be displayed more prominently.

The present application is a continuation of U.S. application Ser. No.09/665,367, filed Sep. 19, 2000 now U.S. Pat. No. 6,836,274, whichclaims priority to provisional patent application entitled: THREEDIMENSIONAL EPG” U.S. Ser. No. 60/203,128, filed on May 8, 2000. Thepresent application claims priority to these previously filedapplication. The subject matter of application Ser. No. 09/665,367 isincorporated herein by reference.

FIELD OF THE INVENTION

The invention relates to the field of creating electronic programmingguides (EPGs) for television viewing. More specifically, the inventionrelates to providing a three dimensional EPG.

BACKGROUND OF THE INVENTION

Electronic Programming Guides (EPGs) allow a viewer to receiveinformation about programs being shown on their cable television system.Currently available EPGs typically display program information, such aswhich programs are on what channels, and when those programs will beshown. Typically, because there is more information than can bedisplayed on the television at once, these EPGs scroll past the screenat a specified rate, making navigation frustrating. These EPGs areusually displayed on one channel of a cable television system and do notallow for interactivity.

Newer digital EPGs allow a user to interact using their remote controlor other means. These EPGs allow users to scan the program selectionsand seek out programs which they want to view, and do allow someinteraction by the user. However, they are still quite simple, andgenerally not very attractive.

Digital EPGs also typically require a set top box (STB) to be attachedto a user's television. The STB contains hardware and software necessaryto process the EPG and the user's input, and also to descramble certaincable channels.

Most EPGs have been simple two-dimensional (2D) text-oriented ElectronicProgramming Guides. They typically display only one text size and verylimited graphics. In general the use of graphics is mostly limited tocharacter-based graphics, capable of drawing boxes, outlines, fields,etc. What is needed is a more interactive and dynamic EPG that can beused on the current generation of STBs.

SUMMARY OF THE INVENTION

The present invention provides a method and an apparatus for displayingan Electronic Programming Guide (EPG) having a reduced graphics hardwarerequirement and capable of three-dimensional graphics. In one embodimentthe method includes displaying a virtual mesh comprising independentobjects situated in a set of parallel planes. The mesh can be displayedin a full three dimensional perspective view. In an alternativeembodiment, hardware requirements may be further reduced if a threedimensional isometric view is utilized. The user can then navigate themesh, and programs can be positioned in the mesh based on predeterminedcriteria.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which:

FIG. 1 a illustrates a three dimensional object as generated by a threedimensional graphics pipeline;

FIG. 1 b illustrates a pixel array;

FIG. 1 c illustrates a pixel array bound to a parallelogram;

FIG. 1 d illustrates a pixel array bound to a trapezoid;

FIG. 1 e illustrates a three dimensional object with a perspective view;

FIG. 1 f illustrates a three dimensional object with an isometric view;

FIG. 2 illustrates an isometric three-dimensional Electronic ProgrammingGuide (EPG) according to one embodiment;

FIG. 3 illustrates a category list according to one embodiment;

FIG. 4 illustrates the position of an EPG relative to a televisionscreen according to one embodiment; and

FIG. 5 illustrates a system having a readable medium with instructionsstored thereon according to one embodiment.

DETAILED DESCRIPTION

One embodiment provides a method and apparatus for displaying anElectronic Programming Guide (EPG) with a reduced hardware requirement.In the following description, for purposes of explanation, specificdetails are set forth to provide a thorough understanding of the presentinvention. However, it will be apparent to one skilled in the art thatthese specific details are not required in order to practice the presentinvention.

Commonly assigned U.S. patent application Ser. No. 09/488,361, filedJan. 16, 2000, introduced a three-dimensional (3D) EPG which allows fora much more configurable and user friendly interface than previous twodimensional (2D) EPGs.

The invention describe herein is sometimes referred to as 3D EPG“Light.” The arrangement and method of displaying the EPG will reducethe hardware requirements of the STB, to further allow current STBs todisplay the described EPG.

Three Dimensional Graphics Pipeline

In order to display a 3D EPG, a STB typically requires a 3D graphicspipeline. Either a hardware accelerated 3D graphics pipeline or asoftware-only 3D graphics pipeline may be used. A hardware-accelerated3D graphics pipeline has the advantage of faster processing because ithas dedicated hardware that handles calculations that would otherwise beperformed by the central processing unit (CPU). A software-only pipelineis typically slower than a hardware-accelerated pipeline because the CPUmust handle graphics processing. However, a software pipeline does notrequire dedicated 3D graphics hardware, and thus is less expensive andcan easily be adapted to currently available STBs that do not alreadyhave 3D hardware acceleration.

The following is meant to be a short description of a 3D graphicspipeline. The commonly assigned U.S. patent application Ser. No.09/488,361, describes 3D accelerator technology in more detail, and isincorporated herein by reference.

FIG. 1 a illustrates the construction of a 3D object using a 3Dpipeline. A 3D graphics pipeline, either hardware or software, operatesas a subsystem of a larger computer system that may be part of, forexample, a STB. A 3D graphics pipeline creates a 3D object by firstreceiving data describing the object from the larger system. The dataincludes coordinates describing a geometric surface, and pixel arrays. Ageometric surface 2 is created from polygons 4. For example, in FIG. 1a, a baseball bat is constructed from triangles.

A pixel array is in essence a graphic image displayed on a computersystem. After the geometric surface is created, the pixel array is boundto the surface. By binding the array to the geometric surface, the 3Dpipeline effectively covers the surface with the array. For example, thearray corresponding to the object in FIG. 1 a would contain a bitmappedimage resembling wood. The array would then be bound to the geometricsurface, and it would resemble a baseball bat.

Once the image is bound, the 3D pipeline displays the image from areference point 6. Reference point 6 is the point from where a viewersees the object. Reference point 6 can be moved to give different viewsof the object.

FIG. 1 b is an example of a pixel array. A pixel is essentially a pointof light on a display. A display is made up of a grid of pixels, eachrepresenting a specific color. The pixels are arranged to create animage on the display. Pixel arrays are image files that are typicallyrectangular in shape and defined by the number of pixels long by thenumber of pixels wide. Pixel array 10 is a grid of 9×9 pixels. In pixelarray 10, there are two colors, black pixels 12 and white pixels 14.Pixel array 10 resembles a house.

As an example, consider that there is a simple geometric surfaceconsisting of a single polygon, a square. A graphics pipeline could bindpixel array 10 to the square. If the square were the same size as thepixel array, the pixel array could be bound to the square by simplyplacing the pixels within the square. This operation requires minimalprocessing. Were the square larger or smaller than the pixel array, thepipeline would have to add or remove pixels, or “resize” the pixelarray, to approximate the size of the square. Resizing a pixel arraystill requires only a small amount of processing.

Now, consider binding the pixel array to a rhomboid, such as rhomboid 18in FIG. 1 c. If the lines of the rhomboid had the same dimensions as thepixel array, you could bit shift the pixel array. Rhomboidal pixel array20 is an example of a bit shift of pixel array 10. In rhomboidal pixelarray 20, the leftmost column of pixels remains in its place, and thecolumn to the right is shifted up one or more pixels. Each successivecolumn to the right is shifted a certain number of pixels until therightmost column has been moved. As bitshifting only requiresrearrangement of pixels, it too is a relatively minor burden on agraphics subsystem.

If you wanted to bind the pixel array to a trapezoid, such as trapezoid28 in FIG. 1 d, you might need to compress some areas of the array,while you might need to expand others. A pixel array is compressed whencertain pixels are removed to make the image smaller, and is expandedwhen pixels are added to make the image larger. As a result, differentareas of the image may be compressed or expanded at different rates.Trapezoidal pixel array 30 is an example of binding pixel array 10 to atrapezoid. This type of operation requires a greater amount ofprocessing than either resizing or bitshifting, and can becomeburdensome on a system that does not have a hardware acceleratedgraphics pipeline.

FIG. 1 e is an example of a three dimensional object with a perspectiveview. When displayed with a perspective view, the lines of a 3D objectsuch as perspective cube 40 will appear to converge upon a vanishingpoint 42. A perspective view requires processing in addition to theprocessing necessary to create a 3D object. This is because many of thesurfaces of an object with a perspective view, such as top 44, will betrapezoidal. As explained above, when binding a rectangular pixel arrayto a trapezoidal surface, extensive processing will be required.Additionally, many of the surfaces in a perspective view will also needto be bitshifted, which further increases the necessary amount ofprocessing.

FIG. 1 f is an example of a three dimensional object with an isometricview. With an isometric view, a 3D object such as isometric cube 46appears uniform, and does not seem to disappear at a vanishing point. Inother words, parallel lines will always look parallel with an isometricview, while in a perspective view they will appear to converge.

Some rectangular surfaces in an isometric view become rhomboids, such astop 48. As explained above in FIG. 1 d, binding a pixel array to arhomboid requires only that a 3D graphics pipeline bitshifts the pixels,a relatively undemanding process. Thus, an EPG that has an isometricview will provide more acceptable performance with a software pipeline.As a result, a software pipeline may be desirable because it can beeasily adapted to current set top boxes.

Simplified Three Dimensional Electronic Programming Guide

FIG. 2 illustrates an exemplary EPG according to one embodiment. Asshown the EPG includes virtual mesh 100 for displaying televisionprogramming information. A user may navigate through virtual mesh 100 tofind desired television programs.

Virtual mesh 100 is a polyhedron. A polyhedron is a three dimensionalobject, such as a cube or a pyramid, that is essentially a solid boundedby polygons. Virtual mesh 100 is also a geometric object (see e.g., FIG.1 a, element 2) constructed from independent objects 101, and threeplanes 102-104. There are relatively few elements to process in virtualmesh 100 when compared to a typical geometric object.

A geometric object, such as geometric surface 2, generally comprisesmany polygons 4 in order to create a smooth, realistic looking surface.In addition, with a typical scene displayed by a hardware accelerated 3Dgraphics pipeline contains many geometric objects which all require asignificant amount of processing. Even a few geometric objects maycomprise several hundred polygons which all require binding bitmapimages to their surfaces.

In contrast to most geometric objects, the EPG described below comprisesonly dozens of surfaces that are mostly stationary. Compared to thetypical application which requires a 3D graphics pipeline, the number ofelements of the here enumerated EPG is quite small. The simplicity ofthis EPG is one factor that reduces the amount of processing required bythe EPG, and allows it to be implemented on current set top boxes(STBs).

Virtual mesh 100 can be displayed either with an isometric view or in afull 3D perspective view. As explained above, if virtual mesh 100 isdisplayed in a perspective view, a hardware-accelerated 3-D pipeline maybe required. Displaying virtual mesh 100 with an isometric view mayallow the implementation of the EPG on an STB exclusive of a hardwareaccelerated 3D graphics pipeline. One advantage of the current inventionis that new set top boxes may not be required, which may allow this newEPG to be brought to market more quickly and less expensively.

Virtual mesh 100 is constructed of individual mesh lines, which give themesh its shape and its structure. As shown in FIG. 2, virtual mesh 100has the shape of a cube, but it is clear that virtual mesh 100 may alsobe in the shape of other polyhedrons. The mesh lines are arranged as tocreate a set of columns and rows, in which television programminginformation can be displayed.

As shown in FIG. 2, virtual mesh 100 is a group of lines displayed on avideo screen configured so that objects 101 may be displayed within themesh. In one embodiment, objects 101 represent individual televisionprograms. Independent objects 101 are arranged as to make navigation ofthe mesh simple, and to bring to the user's attention those programs inwhich they may be interested.

Virtual mesh 100 is further a virtual 3-D view of three parallel planes102, 103 and 104 housing at least one independent object 101 positionedin virtual mesh 100. Virtual mesh 100 is further aligned along threeaxes, the x-axis, the y-axis and the z-axis. As shown in FIG. 2, planes102, 103, and 104 are aligned along the z-axis.

In one embodiment, planes 102-104 are rectangular and parallel. Thefirst plane 102 creates the face of mesh 100, the second plane 103bisects mesh 100, and the third plane 104 creates the backing of mesh100. The three planes house objects 101 so as to give the appearance ofa table of television listings.

Each plane may have its own color and form. For example, plane 102 canbe assigned the color red, and thus its mesh lines are red. Plane 103can be assigned the color blue, and thus its mesh lines are blue, andplane 104 can be assigned the color green, which means its mesh linesare green.

In one embodiment, objects 101 are not a part of virtual mesh 100; theyare merely situated within the mesh 100. Each of the program elements101 is a fully independent object that may be manipulated by the EPGindependent of virtual mesh 100. Objects 101 further comprise one ormore interactive surfaces. Interactive surfaces may be acted upon by theuser to create a desired result, such as selecting a new channel.

Objects 101 may be arranged in planes 102, 103, 104 according to userselected categories. In one embodiment, the three planes shown representlevels of preference, and specifically represent the categories“preferred,” “neutral,” and “don't prefer.” However, any alternativenumber of categories greater than one could be used. In FIG. 2, thefirst plane 102 represents the “preferred” category, the second plane103 represents the “neutral” category and the third plane 104 representsthe “don't prefer” category.

Although one embodiment shows planes 102, 103 and 104 that are parallelwith a rectangular shape, and objects 101 that are rectangular, in otherembodiments the program listings could be displayed in various differentforms. An object 101 could be a pictogram that graphically displays thetype of programming represented by that object. For example, the programlisting of a baseball game could appear in a virtual 3-D shape of abaseball bat, or a baseball (not shown). Additionally, the planes neednot be parallel and aligned along the z-axis. Any variety of shapes,sizes, and alignments of listings and listing planes could be createdwithin the scope of the invention.

The top plane of virtual mesh 100, formed by the x and y axes of thethree planes is a Time Plane. It has time numerals 105 a through n, thefirst two of which are shown as “9:00” and “9:30”. Time lines 106 athrough 106 n extend along the z axis from front to back, as seen inFIG. 2, across planes 102, 103, and 104. The numbers and the time linesmay also be a distinctive color, such as, for example, yellow or gold.

Mesh rows 108 a through 108 n represent channels, and columns 110 athrough 110 n represent times. Names identifying channels are listed inthe first column 110 a. The rows corresponding to a specific channellisted in column 110 a further list the programs on that channel atdifferent times. For example, row 108 b contains listings for thechannel “ABC” 111.

Virtual mesh 100 can contain all available channels from a serviceprovider or can contain a subset of channels selected by interest groupor by certain other criteria. The selection criteria may be eitheruser-selectable or pre-selected by the provider.

A user may navigate the mesh using a remote control device attached to aset-top box (not shown). A user navigates mesh 100 by moving a cursor orhighlight bar throughout the mesh. For example, in FIG. 2, row 108 b ishighlighted by highlight bar 112, which indicates to the user that theyhave currently selected that channel. In FIG. 2, the selected channel isABC 111. Because row 108 b is highlighted, a semi-transparent coloredband extends from the front row to the back to indicate the location ofthe elements.

The cursor 114 is currently highlighting element 116, which is an objectthat represents the user's currently selected program, the news. In oneembodiment, because the news 116 is currently selected, the full titleof the program “ABC Evening News” is displayed on sign 120. Sign 120 isplaced on top of the mesh and displays details of the selected program.The user may move cursor 114 throughout the mesh 100 to select andpreview different television programs. In addition to showing theselected element on table 120, a further enhancement in one embodimentcould pull that show to the front and display it hovering in front ofthe mesh 100.

In the example illustration of FIG. 2, the news 114 is in the firstplane 102 because the user has designated newscasts as a preferredtelevision program. Based on selected interest categories, the programsmatching certain criteria are displayed in the first plane 102,indicating shows of the highest interest, the second plane 103indicating shows of neutral interest, or displayed in the third plane104, indicating shows of the lowest interest. Although planes 102, 103,and 104 are described above as representing level of interest, it isclear than a variety of criterias may be used to determine whichprograms are listed in which planes.

Furthermore, in the example shown in FIG. 2, Johnny Sitcom 122 is setback into the second plane 103, “neutral,” because the user has givensitcoms a “neutral” preference setting. Womantalk 124 is set back intothe third plane 104, or “not preferred.”

The user views virtual mesh 100 from the front. Program listings in thefront plane 102 appear to be at the front of the screen. Programlistings in the middle plane 103 appear to be set back from the front ofthe screen, and program listings in the back plane 104 appear to be setfurther back than program listings in plane 103. In one embodiment, theprograms that the user wishes to view are displayed more prominently, sothat the user's attention will be immediately drawn to them. Thisincreases the ease of use of the EPG and creates an attractive visualeffect.

Although this example of one embodiment shows three planes, the EPG maycontain any number of planes, such as only two, representing interestedand not interested, or four or five planes, for varying levels ofinterest. In yet another embodiment, multiple users on the same set-topbox may have different preferential profiles and may accordingly assigndifferent categories to different preference levels.

The reduced number of elements that comprise the above described EPGhelps to reduce the hardware requirements. Compared to most geometricobjects processed by 3D pipelines, virtual mesh 100 and independentobjects 101 are quite simple, and therefore will not require a greatdeal of processing to display. Additionally, the number of objects thatcomprise the EPG is also comparatively few, and thus there is lessprocessing required.

FIG. 3 illustrates an example of a category list where all categories ofthe various available programs are shown. List 200 has two columns.Column 201 lists categories and column 202 shows the interest levelassignment of each category. Either a user-selectable or preassignedvalue is assigned to each category. These values are then used by thesystem to tie the shows falling into each category to the correct planes102 through 104.

In FIG. 3, for example, sports programs are given an interest level 1,and would therefore be in the first plane 102. Likewise, sitcoms areassigned interest level 2, and would be set in the second plane 103.And, late night shows are given interest level 3, and would be set inthe third plane, 104.

Multiple customized tables can be programmed for different users, sowhen a user identifies himself, the EPG rearranges shows within the meshaccordingly. By pushing back certain shows and also making their entriesvisibly smaller than those in the foreground, shows of lesser interestare de-emphasized.

FIG. 4 shows virtual mesh 100 as seen on a television screen. In oneembodiment, the angle between the top line and the perpendicular, asviewed on a 2-D screen, is between 90 and 97 degrees. The embodimentshown in FIG. 4 is exemplary. Other arrangements may be chosen withoutaffecting the functionality of the EPG.

The method of displaying an EPG in three dimensions, as described above,can be stored in the memory of a computer system (e.g., set top box,video recorders, etc.) as a set of instructions to be executed, as shownby way of example in FIG. 5. In addition, the instructions to display anEPG in three dimensions as described above could alternatively be storedon other forms of machine-readable medium, including magnetic andoptical disks. For example, the method of the present invention could bestored on machine-readable mediums, such as magnetic disks or opticaldisks, which are accessible via a disk drive (or computer-readablemedium drive). Further, the instructions can be downloaded into acomputing device over a data network in a form of compiled and linkedversion.

Alternatively, the logic to perform the methods as discussed above,could be implemented in additional computer and/or machine readablemediums, such as discrete hardware components as large-scale integratedcircuits (LSI's), application-specific integrated circuits (ASIC's),firmware such as electrically erasable programmable read-only memory(EEPROM's); and electrical, optical, acoustical and other forms ofpropagated signals (e.g., carrier waves, infrared signals, digitalsignals, etc.); etc.

The embodiments above have been described in sufficient detail with acertain degree of particularity. It is understood to those skilled inthe art that the present disclosure of embodiments has been made by wayof examples only and that numerous changes in the arrangement andcombination of parts may be resorted without departing from the spiritand scope of the embodiments as claimed. Accordingly, the scope isdefined by the appended claims rather than the forgoing descriptions ofembodiments.

1. A method for displaying an Electronic Programming Guide (EPG)performed by computer instruction storage on a memory and executed by acomputer, the method comprising: generating a three dimensional virtualmesh polyhedron wherein the virtual mesh polyhedron is displayed at anangle other than normal view; generating a plurality of planespositioned in said polyhedron, said planes being approximately parallel,said polyhedron having a first object on a first plane and a secondobject on a second plane, wherein said plurality of planes are bothinternal and external plane surfaces which are used to displayinformation; and providing a supplementary information area.
 2. A methodfor displaying an EPG as in claim 1, wherein said EPG is generatedexclusive of three dimensional graphics circuitry.
 3. A method fordisplaying an EPG as in claim 1, wherein the selection of one of saidobjects will select a program provided on a certain channel at a certaintime.
 4. A method for displaying an EPG as in claim 1, wherein saidobjects are independent of said polyhedron.
 5. A method for displayingan EPG as in claim 1, wherein said objects represent a certaintelevision program on a certain channel at a certain time.
 6. A methodfor displaying an EPG as in claim 1, wherein said virtual meshpolyhedron is a cube.
 7. A method for displaying an EPG as in claim 6,wherein said cube further comprises three axes.
 8. A method fordisplaying an EPG as in claim 7, wherein said axes correspond to time,channel, and user preference.
 9. A method for displaying an EPG as inclaim 1, wherein said planes correspond to levels of preference.
 10. Amethod for displaying an EPG as in claim 1, wherein at least one of saidobjects a pictogram.
 11. A method for displaying an EPG as in claim 1,wherein said planes correspond to categories of channels.
 12. A methodfor displaying an EPG as in claim 1, wherein said supplementaryinformation area displays details of a selected program.
 13. A methodfor displaying an EPG as in claim 1, wherein said supplementaryinformation area is an extension of one of said planes.
 14. A method fordisplaying an EPG as in claim 1, wherein said supplementary informationarea displays advertisement/promotional information.
 15. A method fordisplaying an Electronic Program Guide (EPG) performed by computerinstruction storage on a memory and executed by a computer, the methodcomprising: a three dimensional isometric virtual mesh polyhedronwherein the virtual mesh polyhedron is displayed at an angle other thannormal view; a plurality of planes positioned in said polyhedron, saidpolyhedron having a first object on a first plane and a second object ona second plane; and said objects providing interactive surfaces; whereinsaid plurality of planes are both internal and external plane surfaceswhich are used to display information; and further wherein at least oneof said planes are rectangular.
 16. The EPG of claim 15, wherein saidEPG is generated exclusive of three dimensional graphics circuitry. 17.The EPG of claim 15, wherein the selection of one of said objects willselect a program provided on a certain channel at a certain time. 18.The EPG of claim 15, wherein said objects are independent of saidpolyhedron.
 19. The EPG of claim 15, wherein said objects represent acertain television program on a certain channel at a certain time. 20.The EPG of claim 15, wherein said polyhedron is a cube.
 21. The EPG ofclaim 20, wherein said cube further comprises three axes.
 22. The EPG ofclaim 21, wherein said axes correspond to time, channel, and userpreference.
 23. The EPG of claim 15, wherein said planes are parallel.24. The EPG of claim 15, wherein said planes correspond to levels ofpreference.
 25. The EPG of claim 15, wherein at least one of saidobjects is a pictogram.
 26. A method for displaying an EPG as in claim15, wherein said planes correspond to program information for aparticular channel.
 27. A method for displaying an EPG as in claim 15,wherein said planes correspond to categories of channels.
 28. A methodfor displaying an EPG as in claim 15, wherein said planes are comprisedof varying colors.
 29. A method for displaying an Electronic ProgramGuide (EPG), the displaying performed by computer instruction storage ona memory and executed by a computer, the system comprising: a first unitfor generating a three dimensional virtual mesh polyhedron wherein thevirtual mesh polyhedron is displayed at an angle other than normal view;said first unit also generating a plurality of planes positioned in saidpolyhedron, said polyhedron having a first object on a first plane and asecond object on a second plane, said objects providing interactivesurfaces; and further wherein selection of at least one of said objectstransforms the object to a pictogram.
 30. The system of claim 29,wherein said EPG is generated exclusive of three dimensional graphicscircuitry.
 31. The system of claim 29 wherein the selection of one ofsaid objects or pictograms will select a program provided on a certainchannel at a certain time.
 32. The system of claim 29, wherein saidobjects are independent of said polyhedron.
 33. The system of claim 29,wherein said objects represent a certain television program on a certainchannel at a certain time.
 34. The system of claim 29, wherein saidpolyhedron is a cube.
 35. The system of claim 29, wherein said planesare parallel.
 36. The system of claim 29, wherein said planes correspondto levels of preference.